package com.attendance.www.hr.service;

import java.util.Date;
import java.util.List;

import org.apache.poi.ss.usermodel.Workbook;

import com.attendance.www.hr.beans.EmployeeBean;
import com.attendance.www.hr.beans.EmployeePageBean;

public interface IEmployeeService {

	/**
	 * 获取全部员工集合
	 * 
	 * @param employeeNo
	 * @param roleCode
	 * @param roleName
	 * @param departmentCode
	 * @param departmentName
	 * @param startNum
	 * @param pageCount
	 * @param employeeId
	 * @return
	 */
	public EmployeePageBean getEmployeePageList(EmployeeBean employeeBean, Integer startNum, Integer pageCount,Integer employeeId);

	/**
	 * 获取全部员工ID集合
	 * 
	 * @param employeeNo
	 * @param roleName
	 * @param departmentName
	 * @param employeeIsSeparated
	 * @return
	 */
	public List<Integer> getEmployeeIdList(String employeeNo, String roleName, String departmentName,
			String corporationName, Integer employeeIsSeparated);

	/**
	 * 修改免签人员
	 * 
	 * @param employeeIdList
	 * @return
	 */
	public boolean updateVisaWaiver(EmployeeBean employeeBean);

	/**
	 * 查询员工级别
	 * 
	 * @return
	 */
	public List<Integer> getLevelList();

	/**
	 * 新增员工
	 * 
	 * @param employeeBean
	 * @return
	 */
	public boolean saveEmployee(EmployeeBean employeeBean);

	/**
	 * 离职员工
	 * 
	 * @param employeeId
	 * @return
	 */
	public boolean deleteEmployee(EmployeeBean employeeBean);

	/**
	 * 修改员工
	 * 
	 * @param employeeBean
	 * @return
	 */
	public boolean updateEmployee(EmployeeBean employeeBean);

	public EmployeeBean getEmployeeBeanById(Integer employeeId,Date date);
	
	/**
	 * 重置用户密码
	 * @param employeeId
	 * @return
	 */
	public boolean resetEmployeePassWord(Integer employeeId);
	
	/**
	 * 验证方法，新增修改的验证
	 * @param employeeBean
	 */
	public void getVerifyEmployee(EmployeeBean employeeBean);
	
	/**
	 * 离职信息导入接口
	 * @param attachmentId
	 * @return
	 */
	public List<String> importEmployeeIsSeparated(Integer attachmentId);

	/**
	 * 增加离职人员信息接口
	 * @param work
	 * @return
	 */
	public List<String> addEmoloyeeIsSeparated(Workbook work);

	/**
	 * 撤回离职人员
	 * @param employeeBean
	 * @return
	 */
	public boolean updateEmployeeByRevocation(EmployeeBean employeeBean);
}


